package com.cskaoyan.day7._04_treemap;

import java.util.Map;
import java.util.TreeMap;

/**
 * @author Common-zhou
 * @since 2023-03-06 11:16
 */
public class Demo3 {
    public static void main(String[] args) {


        //        Map.Entry<K,V> higherEntry(K key): 大于给定key的最小键值对
        //        K higherKey(K key): 大于给定key的最小key
        //        Map.Entry<K,V> lowerEntry(K key): 小于key的最大的键值对
        //        K lowerKey(K key): 小于key最大的key

        TreeMap<Integer, String> treeMap = new TreeMap<>();
        treeMap.put(1, "111");
        treeMap.put(6, "666");
        treeMap.put(5, "555");
        treeMap.put(3, "333");
        treeMap.put(8, "888");
        // 1   3   5   6   8

        //        Map.Entry<K,V> ceilingEntry(K key): 大于等于给定key的最小键值对
        //        K ceilingKey(K key): 大于等于给定key的最小key
        // 需要大于等于 给定 4 ； 的一个最小键值对
        Map.Entry<Integer, String> ceilingEntry = treeMap.ceilingEntry(4);
        System.out.println(ceilingEntry.getKey() + "___" + ceilingEntry.getValue());

        Map.Entry<Integer, String> ceilingEntry1 = treeMap.ceilingEntry(5);
        System.out.println(ceilingEntry1.getKey() + "___" + ceilingEntry1.getValue());

        Map.Entry<Integer, String> ceilingEntry2 = treeMap.ceilingEntry(9);
        // 如果说没有这样的元素，返回null， 所以需要注意空指针
        //System.out.println(ceilingEntry2.getKey() + "___" + ceilingEntry2.getValue());

        //        Map.Entry<K,V> floorEntry(K key): 小于等于key的最大的键值对
        //        K floorKey(K key): 小于等于key最大的key
        // 1   3   5   6   8
        Map.Entry<Integer, String> floorEntry = treeMap.floorEntry(4);
        System.out.println(floorEntry);

        Map.Entry<Integer, String> floorEntry1 = treeMap.floorEntry(0);
        System.out.println(floorEntry1);


    }
}
